import com.plugin.utils.FieldDelegate
import org.gradle.api.JavaVersion

object Module {
    val isBuildModule = false
}

object AndroidConfig {
    const val applicationId = "com.shawn.example.mvvmdemo"
    const val compileSdkVersion = 32
    const val buildToolsVersion = "30.0.3"
    const val minSdkVersion = 25
    const val targetSdkVersion = 32
    const val versionCode = 1
    const val versionName = "1.0"
}

object Versions {
    const val hiltVersion = "2.41"
    const val glideVersion = "4.11.0"
    const val aRouterVersion = "1.5.2"
    const val kotlinVersion = "1.6.21"
    const val gradleVersion = "7.2.2"
    const val lifecycleVersion = "2.5.0"
    const val roomVersion = "2.4.2"
}

object Libs {
    val stethoLib by FieldDelegate(StethoLib::class.java)
    val netLib by FieldDelegate(Net::class.java)
    val ktxLib by FieldDelegate(Ktx::class.java)
    val aRouterLib by FieldDelegate(ARouter::class.java)
}

object StethoLib {
    const val stethoSdk: String = "com.facebook.stetho:stetho:1.6.0"
    const val stethoOkhttp: String = "com.facebook.stetho:stetho-okhttp3:1.6.0"
}

object Net {
    const val retrofit: String = "com.squareup.retrofit2:retrofit:2.9.0"
    const val converter: String = "com.squareup.retrofit2:converter-gson:2.9.0"
    const val okhttp: String = "com.squareup.okhttp3:okhttp:4.10.0"
    const val gson: String = "com.google.code.gson:gson:2.8.6"
}

object NetLib {
    const val rxJavaAndroid = "io.reactivex.rxjava3:rxandroid:3.0.0"
    const val rxJava3 = "io.reactivex.rxjava3:rxjava:3.1.5"
    const val converterScalars = "com.squareup.retrofit2:converter-scalars:2.9.0"
    const val rxJava3RetrofitAdapter = "com.squareup.retrofit2:adapter-rxjava3:2.9.0"
}

object Ktx {
    const val core: String = "androidx.core:core-ktx:1.8.0"
    const val coroutines: String = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.3"
}

object ARouter {
    const val aRouter = "com.alibaba:arouter-api:${Versions.aRouterVersion}"
}

object Jetpack {
    const val viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycleVersion}"
    const val livedata = "androidx.lifecycle:lifecycle-livedata-ktx:${Versions.lifecycleVersion}"
    const val lifecycleRuntime = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycleVersion}"
    const val fragment = "androidx.fragment:fragment-ktx:1.5.1"
    const val activity = "androidx.activity:activity-ktx:1.5.1"
    const val datastorePref = "androidx.datastore:datastore-preferences:1.0.0"
    const val hilt = "com.google.dagger:hilt-android:${Versions.hiltVersion}"
    const val room = "androidx.room:room-runtime:${Versions.roomVersion}"
    const val roomKtx = "androidx.room:room-ktx:${Versions.roomVersion}"
}

object CompilerLibs {
    const val roomCompiler = "androidx.room:room-compiler:${Versions.roomVersion}"
    const val glideCompiler = "com.github.bumptech.glide:compiler:${Versions.glideVersion}"
    const val aRouterCompiler = "com.alibaba:arouter-compiler:${Versions.aRouterVersion}"
    const val hiltAndroidCompiler = "com.google.dagger:hilt-android-compiler:${Versions.hiltVersion}"
}

object CommonUI {
    const val appcompat = "androidx.appcompat:appcompat:1.4.1"
    const val material = "com.google.android.material:material:1.6.0"
    const val constrainlayout = "androidx.constraintlayout:constraintlayout:2.1.4"
    const val freshlayout = "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
    const val recyclerview = "androidx.recyclerview:recyclerview:1.2.0"
    const val carview = "androidx.cardview:cardview:1.0.0"
}

object RxHttp {
    const val version = "2.8.9"
}

object ImMerSionBar {
    const val base = "com.geyifeng.immersionbar:immersionbar:3.2.2"
    const val ktx = "com.geyifeng.immersionbar:immersionbar-ktx:3.2.2"
}

object OthersLib {
    const val mmkv = "com.tencent:mmkv-static:1.2.7"
    const val permission = "com.github.getActivity:XXPermissions:12.2"
    const val logger = "com.orhanobut:logger:2.2.0"
    const val legacy = "androidx.legacy:legacy-support-v4:1.0.0"
    const val banner = "com.github.bingoogolapple:BGABanner-Android:3.0.1"
    const val rvHelper = "com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.6"
    const val agentWeb = "com.github.Justson.AgentWeb:agentweb-core:v4.1.9-androidx"
    const val libBGABanner = "com.github.bingoogolapple:BGABanner-Android:3.0.1"

    //Google开源的一个布局控件
    const val flexbox = "com.google.android:flexbox:2.0.1"
    const val glide = "com.github.bumptech.glide:glide:${Versions.glideVersion}"

    // 沉浸式状态栏
    const val statusBar = "io.github.bbggo:lib-statusbar:1.0.1"

    // cookie持久化管理工具
    const val cookieJar = "com.github.franmontiel:PersistentCookieJar:v1.0.1"

    // tab 工具栏 https://github.com/H07000223/FlycoTabLayout
    const val tabLayout = "io.github.h07000223:flycoTabLayout:3.0.0"
}

object Common {
    val jdk = JavaVersion.VERSION_1_8
}